 package com.yxw.live_vod_boot.utils;

import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.bytedeco.javacv.FFmpegFrameGrabber;
//import org.bytedeco.javacv.Frame;
//import org.bytedeco.javacv.Java2DFrameConverter;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.File;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.UUID;
//
//import static cn.hutool.core.img.ImgUtil.rotate;

/**
 * @author liuxin
 * @date 2023.12.28
 */
@Slf4j
public class VideoCoverUtils {

//    /**
//     * 视频文件截取封面
//     * @param videoPath
//     */
//    public static String interceptCover(String videoPath) {
//        try {
//            Map<String, Object> result = new HashMap<String, Object>();
//            FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(videoPath);
//            // 第一帧图片存储位置
////            String targerFilePath = videoPath.substring(0, videoPath.lastIndexOf("?"));
//            // 视频文件名
//            String fileName = videoPath.substring(videoPath.lastIndexOf("/")+1,videoPath.length());
//            // 图片名称
//            String targetFileName = UUID.randomUUID().toString().replaceAll("-", "").concat(".jpg");
//            log.debug("视频路径是：" + videoPath);
//            log.debug("视频文件名：" + fileName);
//            log.debug("图片名称是：" + targetFileName);
//            grabber.start();
//            //设置视频截取帧（默认取第一帧）
//            Frame frame = grabber.grabImage();
//            //视频旋转度
//            String rotate = grabber.getVideoMetadata("rotate");
//            Java2DFrameConverter converter = new Java2DFrameConverter();
//            //绘制图片
//            BufferedImage bi = converter.getBufferedImage(frame);
//            if (rotate != null) {
//                // 旋转图片
//                rotate(bi, Integer.parseInt(rotate));
//            }
//            //图片的类型
//            String imageMat = "jpg";
//            //图片的完整路径
//            String imagePath = "D:\\session\\"+targetFileName;
//            //创建文件
//            File output = new File(imagePath);
//            ImageIO.write(bi, imageMat, output);
//
//            //拼接Map信息
//            result.put("videoWide", bi.getWidth());
//            result.put("videoHigh", bi.getHeight());
//            long duration = grabber.getLengthInTime() / (1000 * 1000);
//            result.put("rotate", StringUtils.isBlank(rotate) ? "0" : rotate);
//            result.put("format", grabber.getFormat());
//            result.put("imgPath", output.getPath());
//            result.put("time", duration);
//            log.debug("视频的宽:" + bi.getWidth());
//            log.debug("视频的高:" + bi.getHeight());
//            log.debug("视频的旋转度：" + rotate);
//            log.debug("视频的格式：" + grabber.getFormat());
//            log.debug("此视频时长（s/秒）：" + duration);
//            grabber.stop();
//            log.debug("截取视频截图结束：" + System.currentTimeMillis());
//            return imagePath;
//        } catch (Exception e) {
//            log.error("截取封面失败: {}", e.getMessage());
//        }
//        return "";
//    }
}
